Independent software programs that could also be running on different platforms have a need to exchange messages such as data. In order to send such messages, a source program sends a message to a destination external to the source program. An exit routine within the source program recognizes that the message is bound for a destination outside of the source program. The externally bound message is routed to message queue in a middleware program. This middleware program acts as a bridge between the source program and a separate independent destination program.
Errors can occur during the routing of these outbound messages from the source program through the middleware program, and instead of being routed through the middleware, the outbound messages are misdirected or stranded in default message queues internal to the source program. For example, these messages are sent to a destination that, although originally valid for outward bound messages, becomes invalid or is no longer recognized as directed to the middleware for routing outside the source application. Once stranded in an internal default message queue, these messages are effectively “lost” and are never recovered or delivered to the destination program. The source program does not contain a utility or routine to recover these misdirected messages. In fact, the source program may not even recognize that the messages are lost and may not be able to determine the location of the lost messages.
A method is needed to identify messages bound for delivery outside of a source program but misdirected and not delivered. What is needed are suitable methods that would identify the misdirected messages, extract the messages from the location to which the messages were improperly delivered and re-route or re-queue these messages through the middleware.